from Crypto.PublicKey import RSA
from hashlib import sha256
import base64

ca_key=(123911229913422142875264410911959753429255609781060012540592865384481400430784339515602026823919372067245349130530370079412035001372557207523878469898937327849288805682100737656179353201361997603827751534685210816357362467822736133251729781421390068496293277151621728336136046748401714936280146300069794792289, 65537)

def cert_sign(mess):
    from CA_sec import cert_d
    gmess=mess.hex()
    isign=int.from_bytes(sha256(mess).digest(),'big')
    csign=hex(pow(isign,cert_d,ca_key[0]))[2:]
    return gmess+"_"+csign

def cert_verify(mess):
    try:
        gm,cs=mess.split('_')
        rl=bytes.fromhex(gm)
        ps=int(cs,16)
        isign=int.from_bytes(sha256(rl).digest(),'big')
        if pow(ps,ca_key[1],ca_key[0])==isign:
            return (True,rl)
        return (False,b"")
    except:
        print("ERROR!")
        return (False,b"")


P=90217665064898209874945440415607645619739552209209829698859302616784804764535733761793578496057231124307702060703777047113648993244620436073319613409562635176198907683514151487667596066485528729421061091099275256268502121631878101098253283229895343146346757918637948217208979264467987857303672675468072062419
G=13
